home *** CD-ROM | disk | FTP | other *** search
/ Day Cry / Day Cry CD.bin / oh_towns / install / install.c < prev    next >
C/C++ Source or Header  |  1994-09-20  |  7KB  |  274 lines

  1. /*************************************************************************
  2. *
  3. *                installer for APPARE CD vol.1
  4. *
  5. *                                                    cording ... TaroPYON
  6. *
  7. *************************************************************************/
  8.  
  9. #include    "ccilib.h"
  10. #include    "kbcode.h"
  11. #include    "install.h"
  12.  
  13. #define    VERSION    "1.01a"
  14. #define    EDITION    "01"
  15.  
  16. #define    EVNO_EXIT    (9999)
  17.  
  18. #define    SCREEN_MODE        (0x030A)
  19. int        DrvInst       = -1;
  20. int        PltNoWhite    = 5;
  21. int        ColBoxNormal  = 0;
  22. int        ColBoxInfo    = 0;
  23. int        ColBoxCaution = 0;
  24. int        ColBoxError   = 0;
  25. int        ColMesh       = 0;
  26.  
  27. int        init();
  28. int        term();
  29. int        install_main();
  30. int        set_debug_menu(char *mnu);
  31.  
  32. #ifdef    DEBUG
  33. #    define    _TOPMENU_NUM    (2)
  34. #else
  35. #    define    _TOPMENU_NUM    (1)
  36. #endif
  37.  
  38. int        main(int argc, char **argv)
  39. {
  40.     init();
  41.     install_main();
  42.     term();
  43.  
  44.     return (0);
  45. }
  46.  
  47. int    init()
  48. {
  49.     char        msg[80], tmp[128];
  50.     char       *mnu;
  51.     char       *msgMenu[_TOPMENU_NUM];
  52.     char       *img;
  53.     int            winBasCol;
  54.  
  55.     APL_init(SCREEN_MODE,1,1);
  56.     LHA_sysInit(NULL);    /* LHA.DLLé╠Åëè·ë╗    */
  57.  
  58.     /*------------------------------------------------------------------*/
  59.     disp_desktop();
  60.     SCN_wrtPage(1);
  61.     tmp[0] = 0;
  62.     tmp[1] = 255;    /* blue  */
  63.     tmp[2] = 255;    /* red   */
  64.     tmp[3] = 255;    /* green */
  65.     SCN_palette(0,PltNoWhite,tmp);
  66.  
  67.     /* âxü[âXâEâBâôâhâD    ------------------------------------------------*/
  68.     SCN_wrtPage(1);
  69.     winBasCol = 0;
  70. /*    winBasCol = SCN_tile_newMixCol(winBasCol,MIXCOL_STD1,C_HWHITE,C_WHITE);*/
  71.     winBasCol = C_THROUGH;
  72.     APL_openBaseWin(winBasCol);
  73.  
  74.     /* âgâbâvâoü[    ----------------------------------------------------*/
  75.     SCN_wrtPage(1);
  76.     sprintf(msg,"%c%c", Gaiji_ohFMTOWNS>>8, Gaiji_ohFMTOWNS&0xFF);
  77.     msgMenu[0] = " INSTALL ";
  78. #if    _TOPMENU_NUM > 1
  79.     msgMenu[1] = "  DEBUG  ";
  80. #endif
  81.     APL_openTopBarMenu(Fnt16x16,msg,C_HGREEN, _TOPMENU_NUM,Fnt16x12,msgMenu,C_MBLACK);
  82.  
  83.     /* [Oh!FM TOWNS]âüâjâàü[    ----------------------------------------*/
  84.     MNU_datAdd( SysMnu, 0, 'A', Fnt16x16, 0, "about_dlg"  , 0, "é▒é╠âvâìâOâëâÇé╔é┬éóé─");
  85.     MNU_datAdd( SysMnu, 0, 'F', Fnt16x16, 0, "dsp_freemem", 0, "âtâèü[âüâéâè"          );
  86.  
  87.     /* [INSTALL]âüâjâàü[    --------------------------------------------*/
  88.     mnu = AplMnu[0];
  89.     MNU_datAdd( mnu, 0, 'H', Rom16x16, 0, "inst_help", "message.doc", "Éαû╛"      );
  90.     MNU_datAdd( mnu, 0,  0 , Rom16x16, 0, ""         , 0            ,  NULL       );
  91.     MNU_mnuAdd( mnu, 0, 'A', Fnt16x16, get_inst_tool_mnu()          , "âcü[âï"    );
  92.     MNU_mnuAdd( mnu, 0, 'I', Fnt16x16, get_inst_imag_mnu()          , "ëµæ£üòô«ëµ");
  93.     MNU_mnuAdd( mnu, 0, 'S', Fnt16x16, get_inst_snd_mnu()           , "âTâEâôâh"  );
  94.     MNU_mnuAdd( mnu, 0, 'G', Fnt16x16, get_inst_game_mnu()          , "âQü[âÇ"    );
  95.     MNU_mnuAdd( mnu, 0, 'D', Fnt16x16, get_inst_data_mnu()          , "âfü[â^"    );
  96.     MNU_mnuAdd( mnu, 0, 'T', Fnt16x16, get_inst_taro_mnu()          , "TaroPYON"  );
  97.  
  98.     /* [DEBUG]âüâjâàü[    ------------------------------------------------*/
  99. #ifdef    DEBUG
  100.     set_debug_menu( AplMnu[1] );
  101. #endif
  102.  
  103.     /* [EXIT]â{â^âô    ----------------------------------------------------*/
  104.     APL_setExitEvt("EXIT",EVNO_EXIT,"exit_chk");
  105.  
  106.     /* DTA âëâCâuâëâè    ------------------------------------------------*/
  107.     AplDtaInit();
  108.  
  109.     /* ÉFö╘ìå    --------------------------------------------------------*/
  110.     ColBoxNormal  = SCN_tile_newMixCol(ColBoxNormal ,MIXCOL_NORMAL,C_DARK   ,C_WHITE);
  111.     ColBoxInfo    = SCN_tile_newMixCol(ColBoxInfo   ,MIXCOL_NORMAL,C_HGREEN ,C_WHITE);
  112.     ColBoxError   = SCN_tile_newMixCol(ColBoxError  ,MIXCOL_NORMAL,C_HRED   ,C_WHITE);
  113.     ColBoxCaution = SCN_tile_newMixCol(ColBoxCaution,MIXCOL_NORMAL,C_HYELLOW,C_WHITE);
  114.     ColMesh       = SCN_tile_newMixCol(ColMesh      ,MIXCOL_NORMAL,C_THROUGH,C_WHITE);
  115.  
  116.     return (NORMAL);
  117. }
  118.  
  119. int    term()
  120. {
  121.     char    tmp[256];
  122.  
  123.     FS_chdrv(toupper(DirStart[0]) - 'A');
  124.     sprintf(tmp,"%s.",DirStart);
  125.     FS_chdir(tmp);
  126.  
  127.     APL_term();
  128. }
  129.  
  130. int        disp_desktop()
  131. {
  132. #define    DESKTOP_TIFNUM    (8)
  133.     int            n;
  134.     char        tmp[256];
  135.     static char    lastno = -1;
  136.     static char    *tbl[DESKTOP_TIFNUM] =
  137.     {
  138.         "towns04.tif",
  139.         "towns05.tif",
  140.         "towns06.tif",
  141.         "towns07.tif",
  142.         "towns08.tif",
  143.         "towns09.tif",
  144.         "towns10.tif",
  145.         "towns11.tif" 
  146.     };
  147.  
  148.     if ( lastno < 0 )
  149.     {
  150.         n = 7;
  151.     } else
  152.     {
  153.         srand( clock() & 0x7FFFFFFF );
  154.         do
  155.         {
  156.             n = rand() % DESKTOP_TIFNUM;
  157.         } while ( n == lastno );
  158.     }
  159.     sprintf(tmp,"%s../HYOUSHI/%s", DirStart, tbl[n] );
  160.     lastno = n;
  161.  
  162.     return tif_load(tmp);
  163. }
  164.  
  165. int        install_main()
  166. {
  167.     int        ret;
  168.  
  169.     SCN_wrtPage(1);
  170.     syl_clear();
  171.     for (;;)
  172.     {
  173.         MOS_CON();
  174.         ret = EV_chk(EvTop,0);
  175.         if ( ret == EVNO_EXIT )
  176.             break;
  177.     }
  178.     return (0);
  179. }
  180.  
  181. int        exit_chk()
  182. {
  183.     char    *dlgTxm;
  184.     int        i, ret;
  185.     static char    *msgtbl[4] =
  186.     {
  187.         "",
  188.         "âCâôâXâgü[âëé≡ÅIù╣é╡é▄é╖é⌐üH",
  189.         "",
  190.         NULL
  191.     };
  192.  
  193.     dlgTxm = DlgTxm_open(ColBoxCaution);
  194.     for ( i = 0; msgtbl[i] != NULL; ++i )
  195.         DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_CENTER, msgtbl[i]);
  196.  
  197.     DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, C_MBLACK, C_WHITE, C_HWHITE, C_DARK,
  198.         '\r'  , KA_EXEC  , EVNO_EXIT, "", 0, "ÅIù╣ : [Ä└ìs]");
  199.     DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, C_MBLACK, C_WHITE, C_HWHITE, C_DARK,
  200.         '\x1B', KA_CANCEL,         0, "", 0, "ĵÅ┴ : [ĵÅ┴]");
  201.     DlgTxm_setSize(dlgTxm,480,64);
  202.     DlgTxm_setPosition(dlgTxm,DLGPOS_CENTER_OF_SCREEN);
  203.     ret = DlgTxm_start(dlgTxm);
  204.     DlgTxm_close(dlgTxm);
  205.     if ( ret != EVNO_EXIT )
  206.         ret = 0;
  207.  
  208.     return (ret);
  209. }
  210.  
  211. int        about_dlg()
  212. {
  213.     char    *dlgTxm;
  214.  
  215.     dlgTxm = DlgTxm_open(ColBoxNormal);
  216.     DlgTxm_setTitle(dlgTxm,Fnt16x16, "ôVÉ░CD installer ver.%s edition #%s",
  217.         VERSION, EDITION );
  218.  
  219.     DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_CENTER,"üuôVÉ░ébéc Vol.1 ö≥ù┤é╠è¬üvâCâôâXâgü[âïâvâìâOâëâÇ");
  220.     DlgTxm_putf( dlgTxm, Fnt16x12, TXMDAT_ATT_CENTER,"");
  221.     DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_CENTER, "%c%c",
  222.         Gaiji_ohFMTOWNS>>8, Gaiji_ohFMTOWNS&0xFF );
  223.     DlgTxm_putf( dlgTxm, Rom16x16, TXMDAT_ATT_CENTER, "1994 ÅHé╠ô┴ò╩ìåòtÿ^");
  224.     DlgTxm_putf( dlgTxm, Fnt16x16, TXMDAT_ATT_CENTER, "%c%c SOFTBANK",
  225.         Gaiji_copyright>>8, Gaiji_copyright&0xFF );
  226.  
  227.     DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, C_MBLACK,
  228.         C_WHITE, C_HILIGHT, C_DARK, '\r', KA_EXEC, 0, "", 0, "OK : [Ä└ìs]");
  229.     DlgTxm_setSize(dlgTxm,320,48);
  230.     DlgTxm_setPosition(dlgTxm,DLGPOS_CENTER_OF_SCREEN);
  231.  
  232.     DlgTxm_start(dlgTxm);
  233.     DlgTxm_close(dlgTxm);
  234.  
  235.     return (0);
  236. }
  237.  
  238. int        dsp_freemem()
  239. {
  240.     unsigned int    siz;
  241.     char           *dlgTxm;
  242.     char            tmp1[32], tmp2[32];
  243.  
  244.     siz = APL_getFreeMem();
  245.     dlgTxm = DlgTxm_open(ColBoxInfo);
  246.     DlgTxm_setTitle(dlgTxm,Fnt16x16, "FREE MEMORY SIZE");
  247.  
  248.     DlgTxm_putf( dlgTxm, Fnt16x12, TXMDAT_ATT_CENTER,
  249.         "free memory %s (%s) bytes",
  250.         fdl_ltoaDig(siz,tmp1), fdl_ltoaMsg(siz,tmp2) );
  251.  
  252.     DlgTxm_setBtn( dlgTxm, Fnt16x16, 128, 20, C_MBLACK,
  253.         C_WHITE, C_HILIGHT, C_DARK, '\r', KA_EXEC, 0, "", 0, "OK : [Ä└ìs]");
  254.     DlgTxm_setSize(dlgTxm,400,64);
  255.     DlgTxm_setPosition(dlgTxm,DLGPOS_NORMAL,2,22);
  256.  
  257.     DlgTxm_start(dlgTxm);
  258.     DlgTxm_close(dlgTxm);
  259. }
  260.  
  261. #include    "insttool.c"
  262. #include    "instimg.c"
  263. #include    "instsnd.c"
  264. #include    "instgame.c"
  265. #include    "instdata.c"
  266. #include    "insttaro.c"
  267. #include    "instcont.c"
  268. #include    "instexec.c"
  269. #include    "instlib.c"
  270. #include    "item.c"
  271. #ifdef    DEBUG
  272. #include    "debug.c"
  273. #endif
  274.